昨天提到margin是
hard margin SVM就是很單純的要最大化這個式子,所以完整寫下來會是
min裡面的 w 因為與最小化沒有關係,所以可以拉出來。不過這個最大化最小化的問題很難解,所以我們必須把他轉到一個容易求解的等價問題,我們利用一個性質。在最小化的那一段,我們可以發現,把他乘上一個常數,不會影響到最小的 n 是哪一個,他現在是最小的,大家一起乘一百倍他還是最小。所以我們直接令最小化那段等於一,而在這樣的情況,所有 n 都會滿足
接著我們
要解這邊的的有條件最佳化問題,我們使用lagrange multiplier得到
接著把這個式子分別對 w 與 b 微分,並且令其為零,求最佳解條件,得到
接著把這兩個帶回lagrange得到
限制條件有
這邊的kernel是
解這個 L 是一個二次規劃的問題,可以透過很多方式求解,建議大家可以使用smo的方法,不過這個跟svm比較沒關係,所以這邊不多做介紹,若來日有空再跟大家介紹smo的論文。透過smo得到每一個 a 的值之後,我們可以把最開始的分類邊界重新寫成
且必須滿足
根據KKT condition,這樣可以導出這個最佳解的充要條件
且兩者不可同時為零
可以發現當 a 是零的情況,在 y(x) 中,他不會有任何幫助,反之則會用到,所以 a 非零向量我們稱為support vector(支撐向量),我們預測的時候只會用到這些點,剩下的全部不會用到。而又因為support vector的 a 大於零,因此support vector對應的 必定是零,我們就可以以此去算出 b 出來。
這樣我們就可以完成一個最簡單的SVM了,流程就是
以smo算出 a ,便可得到 support vector
利用support vector計算 b
以為分類邊界(正負值對應二元分類)
然而實際的情況常常不是線性可分的資料,所以我們需要更進一步的推廣SVM到soft margin,明天跟大家介紹!